|
Eiffel is an ISO-standardized, object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of ''Object-Oriented Software Construction'') and Eiffel Software. The design of the language is closely connected with the Eiffel programming method. Both are based on a set of principles, including design by contract, command-query separation, the uniform-access principle, the single-choice principle, the open-closed principle, and option-operand separation. Many concepts initially introduced by Eiffel later found their way into Java, C#, and other languages. New language design ideas, particularly through the Ecma/ISO standardization process, continue to be incorporated into the Eiffel language. ==Characteristics== The key characteristics of the Eiffel language include: * An object-oriented program structure in which a class serves as the basic unit of decomposition. * Design by contract tightly integrated with other language constructs. * Automatic memory management, typically implemented by garbage collection. * Inheritance, including multiple inheritance, renaming, redefinition, "select", (non-conforming inheritance ), and other mechanisms intended to make inheritance safe. * Constrained and unconstrained generic programming * A uniform type system handling both value and reference semantics in which all types, including basic types such as INTEGER, are class-based. * Static typing * Void safety, or static protection against calls on null references, through the attached-types mechanism. * Agents, or objects that wrap computations, closely connected with closures and lambda calculus. * ''Once'' routines, or routines evaluated only once, for object sharing and decentralized initialization. * Keyword-based syntax in the ALGOL/Pascal tradition but separator-free, insofar as semicolons are optional, with operator syntax available for routines. * Case insensitivity * Simple Concurrent Object-Oriented Programming (SCOOP) facilitates creation of multiple, concurrently active execution vehicles at a level of abstraction above the specific details of these vehicles (e.g. multiple threads without specific mutex management). 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Eiffel (programming language)」の詳細全文を読む スポンサード リンク
|